import request from '@/utils/request';
import type {
	GetDicListReq,
	DicListRow,
	DicConfigListRow,
	AddDicConfigParamsReq,
	GetDicConfigListReq,
	GetDictDetailByCodeReq,
} from './model.d';

export * from './model.d';

/** 添加数据字典
 * @param data.dictTypeName 字典名称
 * @param data.dictTypeCode 字典编号
 * @param data.detailValueType 数据类型
 * @param data.remark 描述
 */
export function addDic(data: DicListRow) {
	return request({
		url: '/dict/saveDictType',
		method: 'post',
		data,
	});
}

/** 修改数据字典
 * @param data.id
 * @param data.dictTypeName 字典名称
 * @param data.dictTypeCode 字典编号
 * @param data.detailValueType 数据类型
 * @param data.remark 描述
 */
export function updateDic(data: DicListRow) {
	return request({
		url: '/dict/updateDictType',
		method: 'put',
		data,
	});
}

/** 删除数据字典
 * @param params.dictTypeId 字典id
 */
export function deleteDictType(params: AddDicConfigParamsReq) {
	return request({
		url: '/dict/deleteDictType',
		method: 'delete',
		params,
	});
}

/** 获取字典列表--分页
 * @param params.dictTypeName 字典名称
 * @param params.dictTypeCode 字典编号
 */
export function getDicList(params: GetDicListReq & TablePageReq) {
	return request<DicListRow>({
		url: '/dict/getDictPage',
		method: 'get',
		params,
	});
}

/** 查询字典配置
 * @param params.dictTypeId 字典id
 * @param params.dictDetailName 中文名
 * @param params.dictDetailEnName 英文名
 */
export function getDicConfigList(params: GetDicConfigListReq) {
	return request<DicConfigListRow[]>({
		url: '/dict/getDictDetail',
		method: 'get',
		params,
	});
}

/** 添加编辑字典详情
 * @param data DicConfigListRow[]
 * @param params.dictTypeId 数据字典id
 */
export function addDicConfig(data: DicConfigListRow[], params: AddDicConfigParamsReq) {
	return request({
		url: '/dict/saveOrUpdateDictDetail',
		method: 'post',
		params,
		data,
	});
}

/** 通过code获取字典
 * @param params.dictTypeCode 字典code
 */
export function getDictDetailByCode(params: GetDictDetailByCodeReq) {
	return request<DicConfigListRow[]>({
		url: '/dict/getDictDetailByCode',
		method: 'get',
		params,
	});
}
